#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
程序名称：
程序版本：
程序作者：
程序功能：
使用方法：
"""
# 导入系统库
import os
import string
import random
import sys
from datetime import datetime

# 导入三方库

# 导入自建库
from Lib import opt_file
from Lib import opt_clip

# 自定义常亮
SEP = os.sep
PARA = sys.argv
OPTF = opt_file
OPTC = opt_clip

## Help内容
HELP= """For example:
==================
EX 1
    python iPW.py
EX 2
    python iPW.py [PASSWORD_Length]
=================="""

def generate_password(length=8):
    """生成一个指定长度的随机密码"""
    # 函数使用random.choice()来从包含字母、数字和标点符号的字符集中选择字符，并通过列表推导式生成一个指定长度的随机密码。你可以通过调整length参数的值来改变密码的长度。
    password_characters = string.ascii_letters + string.digits + string.punctuation
    return ''.join(random.choice(password_characters) for _ in range(length))

def finishing_work(content):
    OPTC.cp(password)  # 将密码复制到剪切板
    print("The password has been copied to the clipboard.")

    filename = OPTF.cupath() + "iPW_outfile_" + datetime.now().strftime("%Y-%m%d_%H-%M-%S") + ".txt"
    OPTF.wrf(filename,password)  # 将密码写入到文件
    print("The password has been written to '{}' file".format(filename))

if __name__ == "__main__":
    if len(PARA) == 1:
        password = generate_password()  # 生成一个默认长度的密码
        print("\nThe Password is: " + password)
        finishing_work(password)
    elif len(PARA) == 2:
        password = generate_password(int(PARA[1]))  # 生成一个指定长度的密码
        print("\nThe Password is: " + password)
        finishing_work(password)
    elif len(PARA) > 2:
        print("Parameter error!")
        print(HELP)

